/**
 * 修改人员信息
 */
package ms.core.gateway.request;

import java.util.Date;
import java.util.Map;

import com.alibaba.fastjson.annotation.JSONField;

import lombok.Data;
import ms.core.common.AppException;
import ms.core.common.consts.SysErr;
import ms.core.gateway.bean.SysUserBean;
import ms.core.gateway.tool.SessionTool;
import ms.core.tool.JsonTool;
import ms.core.tool.StrTool;

@Data
public class UpdateUserRequest {
	@JSONField(serialize=false)
	private String uid;					// 帐号uid
	private String deptUid;				// 部门uid(创建会员子账号，此参数无效)
	private String jobNO;				// 工号
	private String nick;				// 用户昵称或姓名
	private int sex;					// 性别
	private String duty;				// 职位
	private String mobile;				// 用户手机号
	private Date birthday;				// 生日
	private Map<String, Object> ext;	// 会员扩展资料
	private int root;					// 帐户类型(0-子账号;1-主账号)

	public static UpdateUserRequest getInstance(Map<String, Object> body, String sid) {
		UpdateUserRequest usr = JsonTool.objectToBean(body, UpdateUserRequest.class);

		if (usr==null) throw new AppException(SysErr.SYS_PARAM_ERR);

		if (StrTool.isBlank(usr.getUid()))
			throw new AppException(SysErr.SYS_PARAM_ERR, "请指定修改人员帐号.");

		if (usr.getRoot()<SysUserBean.CHILD_ACCOUNT || usr.getRoot()>SysUserBean.ROOT_ACCOUNT)
			throw new AppException(SysErr.SYS_PARAM_ERR, "帐号级别错误,有效级别为主账号或子帐号.");
		
		// 会员帐号，无部门信息
		if (!SessionTool.isSuperCorp(sid))
			usr.setDeptUid(null);

		return usr;
	}
}